#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <string.h>

void sigcb(int signo)
{
  printf("get signal:%d\n",signo);
}
int main()
{
  struct sigaction act;
  memset(&act,0,sizeof(act));
  act.sa_handler = sigcb;
  sigaction(2,&act,NULL);

  while(1)
  {
    printf("hello world!\n");
    sleep(1);
  }
  return 0;
}

//int main()
//{
//  sigset_t iset,oset;
//  sigemptyset(&iset);
//  sigemptyset(&oset);
//  sigaddset(&iset,2);
//  sigaddset(&iset,40);
//
//  sigprocmask(SIG_BLOCK,&iset,&oset);
//  
//  int n=5;
//  while(n--)
//  {
//    kill(getpid(),2);
//    kill(getpid(),40);
//  }
//  
//  return 0;
//}
//

//void sigcb(int signo)
//{
//  printf("the signo is:%d\n",signo);
//  exit(0);
//}
//int main()
//{
//  int i=0;
//  for(;i<31;i++)
//  {
//    signal(i,sigcb);
//  }
//  while(1)
//  {
//    printf("process :%d is running\n",getpid());
//    sleep(1);
//  }
//  return 0;
//}
